package com.cjj.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cjj.common.convention.result.Result;
import com.cjj.dao.entity.User;
import com.cjj.dto.req.*;
import com.cjj.dto.resp.UserListRespDTO;
import com.cjj.dto.resp.UserLoginRespDTO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author admin
 * @since 2025-10-25
 */
public interface UserService extends IService<User> {


    Result<Void> register(UserRegisterReqDTO registerDTO);

    boolean isUsernameExists(String username);

    boolean isPhoneExists(String phone);

    boolean isEmailExists(String email);

    void updateByUserId(UserUpdateReqDTO userUpdateReqDTO);

    UserLoginRespDTO login(UserLoginReqDTO userLoginReqDTO);

    IPage<UserListRespDTO> getUserList(Integer pageNum, Integer pageSize, UserListReqDTO userListReqDTO);

    void updateUserStatus(UserStatusUpdateReqDTO updateDTO);

}
